package de.nroz.model;

import java.math.BigDecimal;
import java.util.Date;

public class Artikel
{

	/**
     * 
     */
	private static final long serialVersionUID = -5258797995800031517L;

	private String artikel = null;

	private long artId = -1;

	private String artNr = null;

	private String ort = null;

	private BigDecimal ekRPreis = null;

	private BigDecimal ekFaPreis = null;

	private BigDecimal vkPreis = null;

	private BigDecimal gewinn = null;

	private Date ekDatum = null;

	private Date vkDatum = null;

	private String beschreibung = null;

	private boolean bezahlt = false;

	private String kanal = null;

	public long getArtId()
	{
		return artId;
	}

	public void setArtId(long artId)
	{
		this.artId = artId;
	}

	public String getArtikel()
	{
		return artikel;
	}

	public void setArtikel(String artikel)
	{
		this.artikel = artikel;
	}

	public String getArtNr()
	{
		return artNr;
	}

	public void setArtNr(String artNr)
	{
		this.artNr = artNr;
	}

	public String getOrt()
	{
		return ort;
	}

	public void setOrt(String ort)
	{
		if (ort != null)
		{
			if (ort.length() <= 2)
			{
				this.ort = ort;
			}
			else
			{
				this.ort = ort.substring(0, 2);
			}
		}
	}

	public Date getEkDatum()
	{
		return ekDatum;
	}

	public void setEkDatum(Date ekDatum)
	{
		this.ekDatum = ekDatum;
	}

	public Date getVkDatum()
	{
		return vkDatum;
	}

	public void setVkDatum(Date vkDatum)
	{
		this.vkDatum = vkDatum;
	}

	public BigDecimal getEkRPreis()
	{
		return ekRPreis;
	}

	public void setEkRPreis(BigDecimal ekRPreis)
	{
		if (ekRPreis != null)
		{
			this.ekRPreis = ekRPreis.abs();
		}
		calculateGewinn();
	}

	public BigDecimal getEkFaPreis()
	{
		return ekFaPreis;
	}

	public void setEkFaPreis(BigDecimal ekFaPreis)
	{
		if (ekFaPreis != null)
		{
			this.ekFaPreis = ekFaPreis.abs();
		}
		calculateGewinn();
	}

	public BigDecimal getVkPreis()
	{
		return vkPreis;
	}

	public void setVkPreis(BigDecimal vkPreis)
	{
		if (vkPreis != null)
		{
			this.vkPreis = vkPreis.abs();
		}
		calculateGewinn();
	}

	public BigDecimal getGewinn()
	{
		return gewinn;
	}

	public String getBeschreibung()
	{
		return beschreibung;
	}

	public void setBeschreibung(String s)
	{
		this.beschreibung = s;
	}

	public void setBezahlt(boolean b)
	{
		this.bezahlt = b;
	}

	public boolean isBezahlt()
	{
		return this.bezahlt;
	}

	public void setKanal(String s)
	{
		this.kanal = s;
	}

	public String getKanal()
	{
		return this.kanal;
	}
	
	private void calculateGewinn()
	{
		if(vkPreis!=null)
		{
			gewinn = vkPreis.subtract(ekRPreis);
		}
		else if(ekRPreis!=null)
		{
			gewinn = ekRPreis.negate();
		}
	}
	
	public Artikel clone()
	{
		Artikel art = new Artikel();
		art.setArtikel(artikel);
		art.setArtNr(artNr);
		art.setBeschreibung(beschreibung);
		art.setBezahlt(bezahlt);
		art.setEkDatum(ekDatum);
		art.setEkFaPreis(ekFaPreis);
		art.setEkRPreis(ekRPreis);
		art.setKanal(kanal);
		art.setOrt(ort);
		art.setVkDatum(vkDatum);
		art.setVkPreis(vkPreis);
		return art;
	}
}
